package com.csii.pos.scalegrade.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.csii.pos.scalegrade.BusnScaleGrdSu;
import com.csii.pos.scalegrade.ScaleGradeDetailVO;

import java.util.List;

/**
 * @Description: 业务规模档次设置
 * @Author: zhanghao
 * @Date:   2021-07-06
 * @Version: V1.0
 */
public interface IBusnScaleGrdSuService extends IService<BusnScaleGrdSu> {

    /**
     * 根据类型和规模档次查询BUSN_SCALE_GRD_SU表中数据
     * @param page MP分页参数
     * @param busnScaleGrdSu BusnScaleGrdSu实体类(必传包含类型,档次为非必传)
     * @Author: zhanghao
     * @return
     */
    IPage<BusnScaleGrdSu> findAllList(Page page, BusnScaleGrdSu busnScaleGrdSu);

    /**
     * 根据存量规模档次编号、规模类型和规模档次批量删除BUSN_SCALE_GRD_SU规模档次设置表记录
     * @Author: zhanghao
     * @param busnScaleGrdSu
     */
    void removeByThreeCondition(List<BusnScaleGrdSu> busnScaleGrdSu);

    /**
     * 根据存量规模档次编号、规模类型和规模档次 更新BUSN_SCALE_GRD_SU规模档次设置表记录
     * @Author: zhanghao
     * @param busnScaleGrdSu 更新的busnScaleGrdSu对象
     */
    void updateByThreeCondition(BusnScaleGrdSu busnScaleGrdSu);

    /**
     * 新增规模档次设置数据
     * @Author: zhanghao
     * @param busnScaleGrdSu  新增的busnScaleGrdSu对象
     */
    void addBusnScaleGrdSu(BusnScaleGrdSu busnScaleGrdSu);

    /**
     * 查询详情时需要查询对应的规模档次名称,根据编号在规模档次定义表中查询规模名称.
     * @param busnScaleGrdSu
     * @return
     */
    String findScaleGrdNameById(BusnScaleGrdSu busnScaleGrdSu);

    /**
     * 根据存量规模档次编号、规模类型和规模档次查询数据库是否包含此数据
     * @param busnScaleGrdSu
     * @return
     */
    boolean isExistData(BusnScaleGrdSu busnScaleGrdSu);

    /**
     * 存量规模档次编号、规模类型和规模档次批量生效和失效
     * @param busnScaleGrdSusList
     */
    void isValidBatch(List<BusnScaleGrdSu> busnScaleGrdSusList);
}
